#include <iostream>
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

using namespace std;

typedef int Status;

typedef struct
{
    string num;
    string name;
    int english;
    int c_language;
    int data_structure;
}StuType;

typedef StuType ElemType;
typedef struct node{
    string data;
    struct node *next;
}LNode, *LinkList;

void CreateList_L(LinkList& L, int n)
{
    // 逆位序输入n个元素的值, 建立带表头结点的单链线型表L
    L = (LinkList)malloc(sizeof(LNode));
    if (!L) exit(OVERFLOW);
    L->next = NULL; // 先建立一个带头结点的单链表
    for (int i = n; i > 0; i--)
    {
        LinkList p = (LinkList)malloc(sizeof(LNode)); // 生成新结点
        if (!p) exit(OVERFLOW);

        // 输入元素值
        cout << "请输入学号(String): ";
        cin >> p->data;
//        cout << "请输入姓名(String): ";
//        cin >> p->data.name;
//        cout << "请输入英语成绩(int): ";
//        cin >> p->data.english;
//        cout << "请输入C语言成绩(int): ";
//        cin >> p->data.c_language;
//        cout << "请输入数据结构成绩(int): ";
//        cin >> p->data.data_structure;

        // 插入到表头
        p->next = L->next;
        L->next = p;
    }
}

int main() {
    LinkList L;
    CreateList_L(L, 5);

    return 0;
}